<?php

namespace application\controller\cpservice;

use application\service\CatelogService;
use application\entity\Response;

class CatelogController extends ServiceController {

    private $catelogService;

    public function __construct() {
        parent::__construct();
        $this->catelogService = new CatelogService();
    }

    /**
     * Thay đổi trạng thái kích hoạt
     * @mapping(value=cpservice/catelog/changeactive.json)
     */
    function changeActive() {
        $id = \core\system\HttpRequest::GET('id');
        $this->catelogService->get($id);
        if ($id == null) {
            $this->view->response(new Response(false, 'Danh mục bạn chọn không tồn tại'));
        }
        $resp = $this->catelogService->changeActive($id);
        $this->view->response($resp);
    }

    /**
     * Xóa catelog theo id, cả id con
     * @mapping(value=cpservice/catelog/del.json)
     */
    function del() {
        $id = \core\system\HttpRequest::GET('id');
        $resp = $this->catelogService->remove($id);
        $this->view->response($resp);
    }

    /**
     * lấy thông tin của catelog bằng id
     * @mapping(value=cpservice/catelog/getinfobyid.json)
     */
    function getInfo() {
        $id = \core\system\HttpRequest::GET('id');
        $resp = $this->catelogService->get($id);
        if ($resp->id != null) {
            $this->view->response(new Response(true, 'ok', $resp));
        } else {
            $this->view->response(new Response(false, 'Danh mục bạn chọn không tồn tại'));
        }
    }

    /**
     * Thêm catelog
     * @mapping(value=cpservice/catelog/add.json)
     */
    function add() {
        $form = \core\system\HttpRequest::content('POST', 'json', \application\entity\form\CatelogForm::class);
        $resp = $this->catelogService->add($form);

        $this->view->response($resp);
    }

    /**
     * sửa thông tin catelog
     * @mapping(value=cpservice/catelog/edit.json)
     */
    function edit() {
        $form = \core\system\HttpRequest::content('POST', 'json', \application\entity\form\CatelogForm::class);
        $resp = $this->catelogService->edit($form);
        $this->view->response($resp);
    }

}
